const express = require('express')
//引入正则校验
const addAdminReg = require("../middleware/addAdminReg")
//引入权限控制模块
const isLoginMiddle  = require('../middleware/isLoginMiddle')

//引入数据库
const adminModel = require('../db/model/adminModel')
//引入md5
var md5 = require('md5');
//创建一个路由
const route = express.Router();

//添加管理员接口,在回调函数中间添加正则校验
// addAdminReg,
route.post('/addAdmin',isLoginMiddle, addAdminReg, async (req, res) => {   //这个位置的路径不需要加api1
  // console.log(req.body);
  //解构赋值
  const { adminName, password, regTime } = req.body
  //解构赋值之后查看数据库中有没有这个数据,有的话返回数据1,没有的话在数据库中添加数据,返回数据2,在查询过程中出错了,返回数据3,错误信息

  //数据库查询和添加数据都是异步函数
  //findOne 如果没有返回null  fond 没有则返回空数组
  try {
    const findResult = await adminModel.findOne({
      adminName
    })
    // console.log(findResult)
    //如果查询到了,返回用户已经注册
    if (findResult) {
      return res.send({
        code: 10001,
        msg: '添加管理员-用户已经被注册',
        data: null
      })
    }
    //如果没有查询到,向数据库添加数据
    await adminModel.create({
      adminName, //adminName = adminName 可以简化
      password: md5(password+'123'),
      regTime //注册时间
    })
    res.send({
      code: 10000,
      msg: '添加管理员-添加成功',
      data: null
    })
  } catch (e) {
    console.log('添加管理员时出现异常' + e.message);
    
    res.send({
      code: 10002,
      msg: '添加管理员-服务端异常',
      data: null
    })
  }
})

module.exports = route